// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()
// 调用数据库
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  let iptVal = event.iptVal;
  let attrkey = event.attrkey;

  // 船只
  if (attrkey == "ship") {
    // 获取总数量
    let num = await db.collection("darkBlueShipInfo").where({
      darkBlue_shipName: db.RegExp({
        regexp: '.*' + iptVal + '.*',
        options: 'i',
      }),
      darkBlue_del: false
    }).count() // count 统计匹配查询条件的记录的条数 

    num = num.total //count属性 => 结果条数

    // 通过for循环做多次请求，存入数组中
    let all = []
    for (let i = 0; i < num; i += 100) { // 自定义每次获取数量
      let list = await db.collection("darkBlueShipInfo").where({
        darkBlue_shipName: db.RegExp({
          regexp: '.*' + iptVal + '.*',
          options: 'i',
        }),
        darkBlue_del: false
      }).skip(i).get() // skip 指定查询返回结果时从指定序列后的结果开始返回

      all = all.concat(list.data) // concat 聚合操作符。连接字符串，返回拼接后的字符串
    }
    return all;
  }

  // 维修
  else if (attrkey == 'main') {
    // 获取总数量
    let num = await db.collection("darkBlueMaintain").where({
      darkBlue_shipName: db.RegExp({
        regexp: '.*' + iptVal + '.*',
        options: 'i',
      }),
      darkBlue_del: false
    }).count() // count 统计匹配查询条件的记录的条数 

    num = num.total //count属性 => 结果条数

    // 通过for循环做多次请求，存入数组中
    let all = []
    for (let i = 0; i < num; i += 100) { // 自定义每次获取数量
      let list = await db.collection("darkBlueMaintain").where({
        darkBlue_shipName: db.RegExp({
          regexp: '.*' + iptVal + '.*',
          options: 'i',
        }),
        darkBlue_del: false
      }).skip(i).get() // skip 指定查询返回结果时从指定序列后的结果开始返回

      all = all.concat(list.data) // concat 聚合操作符。连接字符串，返回拼接后的字符串
    }
    return all;
  }

  // 物资
  else if (attrkey == 'mate') {
    // 获取总数量
    let num = await db.collection("darkBlueMaterial").where({
      darkBlue_shipName: db.RegExp({
        regexp: '.*' + iptVal + '.*',
        options: 'i',
      }),
      darkBlue_del: false
    }).count() // count 统计匹配查询条件的记录的条数 

    num = num.total //count属性 => 结果条数

    // 通过for循环做多次请求，存入数组中
    let all = []
    for (let i = 0; i < num; i += 100) { // 自定义每次获取数量
      let list = await db.collection("darkBlueMaterial").where({
        darkBlue_shipName: db.RegExp({
          regexp: '.*' + iptVal + '.*',
          options: 'i',
        }),
        darkBlue_del: false
      }).skip(i).get() // skip 指定查询返回结果时从指定序列后的结果开始返回

      all = all.concat(list.data) // concat 聚合操作符。连接字符串，返回拼接后的字符串
    }
    return all;
  }

  // 检查
  else if (attrkey == 'check') {
    // 获取总数量
    let num = await db.collection("darkBlueShipCheck").where({
      darkBlue_shipName: db.RegExp({
        regexp: '.*' + iptVal + '.*',
        options: 'i',
      }),
      darkBlue_del: false
    }).count() // count 统计匹配查询条件的记录的条数 

    num = num.total //count属性 => 结果条数

    // 通过for循环做多次请求，存入数组中
    let all = []
    for (let i = 0; i < num; i += 100) { // 自定义每次获取数量
      let list = await db.collection("darkBlueShipCheck").where({
        darkBlue_shipName: db.RegExp({
          regexp: '.*' + iptVal + '.*',
          options: 'i',
        }),
        darkBlue_del: false
      }).skip(i).get() // skip 指定查询返回结果时从指定序列后的结果开始返回

      all = all.concat(list.data) // concat 聚合操作符。连接字符串，返回拼接后的字符串
    }
    return all;
  }

  // 人员
  else {
    // 获取总数量
    let num = await db.collection("darkBlueStaff").where({
      darkBlue_shipName: db.RegExp({
        regexp: '.*' + iptVal + '.*',
        options: 'i',
      }),
      darkBlue_del: false
    }).count() // count 统计匹配查询条件的记录的条数 

    num = num.total //count属性 => 结果条数

    // 通过for循环做多次请求，存入数组中
    let all = []
    for (let i = 0; i < num; i += 100) { // 自定义每次获取数量
      let list = await db.collection("darkBlueStaff").where({
        darkBlue_shipName: db.RegExp({
          regexp: '.*' + iptVal + '.*',
          options: 'i',
        }),
        darkBlue_del: false
      }).skip(i).get() // skip 指定查询返回结果时从指定序列后的结果开始返回

      all = all.concat(list.data) // concat 聚合操作符。连接字符串，返回拼接后的字符串
    }
    return all;
  }

}